<?php
	header("Content-type: text/html; charset=utf-8");
	header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
	header("Cache-Control: no-store, no-cache, must-revalidate");
	header("Cache-Control: post-check=0, pre-check=0", false);
	header("Pragma: no-cache");
  
  $base_url="http://ivctrans.by/all/getdata.php?PHPSESSID=0";
  //http://ivctrans.by/all/getdata.php?PHPSESSID=0&prog=marshrut1&host=3&station_id=50002&station_id1=300001&date=23.01.2011&online=&path=0
  
  if (isset($_REQUEST['a']) && isset($_REQUEST['b']) && isset($_REQUEST['c'])) {
    $datetime=urldecode($_REQUEST['c']);
    $url=$base_url."&prog=marshrut1&host=3";
    $url.="&station_id=".urldecode($_REQUEST['b']);
    $url.="&station_id1=".urldecode($_REQUEST['a']);
    $url.="&date=".mb_substr($datetime,0,2)."%2E".mb_substr($datetime,3,2)."%2E".mb_substr($datetime,6,4);
    $url.="&online=&path=0";
    
    $data=get_php_data($url);

    mb_internal_encoding('UTF-8');
    
    if (mb_strpos($data,'marshrut')>0) {      // рейсы найдены
//      echo '<br><a href="'.$url.'">'.$url.'</a>';
//      echo '<table border=1>'.$data.'</table><br>';

      echo '<table cellpadding="0" cellspacing="0" border="0" class="places_table" id="pl_table">';
    // шапка
      echo '<tr class="places_head">';
      echo '<td width="350" rowspan="2">Рейс</td>';
      echo '<td colspan="2" style="border-bottom: none">Время</td>';
      echo '<td width="80" rowspan="2">Цена билета, руб.</td>';
      echo '<td colspan="2" style="border-bottom: none">Места</td>';
      echo '<td width="200" rowspan="2">Тип автобуса</td>';
      echo '</tr>';
      echo '<tr class="places_head">';
      echo '<td width="50">отпр.</td>';    
      echo '<td width="50">приб.</td>';    
      echo '<td width="40">сидя</td>';
      echo '<td width="40">стоя</td>';
      echo '</tr>';

      while (mb_strpos($data,'marshrut')>0) {
        $data=mb_substr($data,mb_strpos($data,'marshrut')+8);
        if (mb_strpos($data,"showclick('")>0) {
          $data=mb_substr($data,mb_strpos($data,"showclick('")+11);
          // номер эталона
          $r_orig=mb_substr($data,0,mb_strpos($data,"'"));
          $r_id='';
          $len=mb_strlen($r_orig);
          $legal='$0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-';
          for ($ii=0; $ii<$len; $ii++) {
            $ch=mb_substr($r_orig,$ii,1);
            if (mb_strpos($legal,$ch)>0) $r_id.=$ch;
          }
          while ($ii<mb_strlen($r_id));
          while (!mb_strpos($r_id,'~')===false) {
            $r_id=mb_substr($r_id,0,mb_strpos($r_id,'~')).mb_substr($r_id,mb_strpos($r_id,'~')+1);
          }
          // название рейса
          $data=mb_substr($data,mb_strpos($data,'>')+1);
          $r_name=mb_substr($data,0,mb_strpos($data,'<'));
          // свободные места
          $data=mb_substr($data,mb_strpos($data,'bus-info')+8);
          $data=mb_substr($data,mb_strpos($data,'>')+1);
          $r_m=explode('/',mb_substr($data,0,mb_strpos($data,"<")));
          // цена
          $data=mb_substr($data,mb_strpos($data,'price')+5);
          $data=mb_substr($data,mb_strpos($data,'>')+1);
          $r_price=mb_substr($data,0,mb_strpos($data,"<"));
          // время
          $data=mb_substr($data,mb_strpos($data,'time')+4);
          $data=mb_substr($data,mb_strpos($data,'>')+1);
          $r_time1=mb_substr($data,0,mb_strpos($data,"<"));
          $data=mb_substr($data,mb_strpos($data,'time')+4);
          $data=mb_substr($data,mb_strpos($data,'>')+1);
          $r_time2=mb_substr($data,0,mb_strpos($data,"<"));
          // марка автобуса
          $data=mb_substr($data,mb_strpos($data,'typ')+3);
          $data=mb_substr($data,mb_strpos($data,'>')+1);
          $r_typ=mb_substr($data,0,mb_strpos($data,"<"));
          $data=mb_substr($data,mb_strpos($data,'<td>')+3); // оставляем >
          $data=mb_substr($data,mb_strpos($data,'>')+1);
          $r_typ.=' ('.mb_substr($data,0,mb_strpos($data,"<")).')';

          echo '<tr class="places_race" style="'.($r_price=='0'?'color:#888888;':'').'"'.($r_price!='0'?' onclick="load_route(\''.$r_id.'\')"':'').'>';
          echo '<td style="text-align: left; padding-left: 5px">'.$r_name.'</td>';
          echo '<td>'.$r_time1.'</td>';
          echo '<td>'.$r_time2.'</td>';          
          echo '<td style="">'.decorateSum($r_price).'</td>';
          echo '<td>'.$r_m[0].'</td>';
          echo '<td>'.$r_m[1].'</td>';
          echo '<td style="font-size: 12px">'.($r_typ==' ()'?'...':$r_typ).'</td>'; 
          echo '</tr>';
          echo '<tr><td colspan="7"><div class="places_route" id="r'.$r_id.'"></div><input type="hidden" id="rv'.$r_id.'" value="'.$r_orig.'"></td></tr>';
        }
      }
      echo '</table>';
      
    } else if (mb_strpos($data,'no-data')>0) {  // рейсы не найдены
      echo '<table cellpadding="0" cellspacing="0" border="0" id="pl_table"><tr>';
      echo '<td style="color:#0000aa; font-size:12px">По Вашему запросу ничего не найдено. Попробуйте изменить параметры поиска</td>';
      echo '</tr></table>';
    } else {                                    // информация не доступна
      echo '<table cellpadding="0" cellspacing="0" border="0" id="pl_table"><tr>';
      echo '<td style="color: #bb0000; font-size: 12px">Справка о наличии мест временно недоступна. Приносим извинения за неудобства.</td>';
      echo '</tr></table>';
    }
	}

// ----------------------------------------------------------------
	function decorateSum($ss) {
    $i=mb_strlen($ss)-3;
    while ($i>0) {
      $ss=mb_substr($ss,0,$i).' '.mb_substr($ss,$i);
      $i-=3;      
    }
    return $ss;
  }
// ----------------------------------------------------------------
	function get_php_data($url) {
		$get=curl_init();
		curl_setopt($get,CURLOPT_URL,$url); 
		curl_setopt($get,CURLOPT_FOLLOWLOCATION,1);
		curl_setopt($get,CURLOPT_RETURNTRANSFER,1);
		curl_setopt($get,CURLOPT_TIMEOUT,60);
		$answer=curl_exec($get);
		curl_close($get);
		return $answer;
	}
?>